package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;
import com.itheima.pojo.User;

import java.util.List;
import java.util.Map;

/**
 * 用户管理持久层接口
 */
public interface UserManageDao {
    /**
     * 查询所有角色数据
     */
    List<Role> findAll();

    /**
     * 用户分页查询
     */
    Page<User> selectByCondition(String queryString);

    /**
     * 新增用户
     */
    void add(User userManage);

    /*
    往用户和角色中间表插入数据
     */
    void setUserAndRole(Map<String, Object> map);

    //根据用户id查询角色id中间表（count(*)）
    int findUserIdByRoleId(Integer userManageId);

    //根据用户id删除用户记录
    void deleteById(Integer userManageId);

    /**
     * 根据用户id查询用户
     */
    User findById(Integer userManageId);

    /*
  根据用户id 查询角色中间表
  获取角色ids
   */
    List<Integer> findRoleIdsByUserManageId(Integer userManageId);


    //先根据用户id从用户角色中间表 删除关系数据
    void deleteRoleByUserById(Integer id);

    //根据用户id 更新角色数据
    void edit(User userManage);
}
